package com.cskaoyan.javase.oop2._2polymorphic._2advantage;
/**
 * 对于引用数据类型的形参和它的实参数据类型,必须要保持完全一致吗?
 * 不是,如果方法的形参数据类型是父类类型,那么可以传入具体的子类对象
 * 这是向上转型
 *
 * 扩展:
 *      返回值类型和具体的返回值数据类型,同样具有这个特点
 *
 * @since 10:52
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo2 {
    public static void main(String[] args) {
        // 基本数据类型的自动类型转换
        test(1);
        test(1L);

        test(new Dad());
        test(new Daughter());
        test(new Daughter2());
    }

    public static void test(double a){
    }

    public static void test(Dad f){}

    public static Dad test(){
        // return new Dad();
        // return new Daughter();
        return new Daughter2();
    }
}
class Dad{}
class Daughter extends Dad{}
class Daughter2 extends Dad{}